package library.User;
import library.BookList;
import library.operation.IOperation;

public abstract class User {
    //姓名
   protected String name;

    //当前这个类，能够进行哪些操作，就往这个数组中添加对应的对象
    //IOperation[]为功能数组
    protected  IOperation[] operations;
    //创建了O


    public User(String name) {
        this.name = name;
    }

    //提供菜单 显示用户菜单，返回值表示用户输入序号
    //父类不知道管理员和用户的操作，可以使用抽象
    public abstract int menu();
    //抽象方法menu：用于实现各自菜单的打印
           // 需要重写
    //参数：无
    ///返回值：用户需要实现的功能根据菜单上的数字进行的返回
    public void work(int choice, BookList bookList) {

        if(choice<0 || choice>=operations.length)
            System.out.println("输入的选项非法");
        operations[choice].work(bookList);
    }
    //此处User这个类，相当于所有用户种类的父类，系统实际使用中，只能出现管理员、普通用户不会出现父类实例
    //为了避免父类被不小心实例，直接设为abstract类，
    //另外，打印菜单那部分代码可以抽象出来，父类只负责提供菜单，具体操作由子类实现


}
